package maestro;


import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.HashMap;




/**
 *
 * @author sala_a
 */
public class HiloEscuchandoDireccionesPC implements Runnable{
    private HashMap<String, Boolean> direcciones;

    public HashMap<String, Boolean> getDirecciones() {
        return direcciones;
    }

    public void setDirecciones(HashMap<String, Boolean> direcciones) {
        this.direcciones = direcciones;
    }
    Thread hilo;

    public HiloEscuchandoDireccionesPC(HashMap<String, Boolean> direcciones_) {
        direcciones=direcciones_;
    }
    
    @Override
    public void run() {
       
        
        try{
           //InetAddress midireccion = new InetAddress("1.1.1.1"); 
           String midireccion=InetAddress.getLocalHost().getHostAddress();
            DatagramSocket socket =new DatagramSocket(6972,InetAddress.getByName("0.0.0.0"));
            socket.setBroadcast(true);
            byte[] mensajeRecibido = new byte[20000];
            DatagramPacket paqueteRecibido=new DatagramPacket(mensajeRecibido, mensajeRecibido.length);
          while(true){
               socket.receive(paqueteRecibido);
               if (!midireccion.equals(paqueteRecibido.getAddress().getHostAddress())){
//                    System.out.println("Ip recibida: "+paqueteRecibido.getAddress().getHostAddress());
//                    System.out.println("Ip recibida: "+new String(paqueteRecibido.getData()));
                    direcciones.put(paqueteRecibido.getAddress().getHostAddress(),true);
                    String ip = paqueteRecibido.getAddress().getHostAddress();
                    String mens = new String(paqueteRecibido.getData());
                    System.out.println("tamaño: "+direcciones.size());
               }
            }
            
        }catch (Exception e){
        
        }
    
    }
    
}
